package com.xian.tszs.meal.business;

import java.util.HashMap;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.alibaba.druid.util.StringUtils;
import com.xian.tszs.meal.entity.TsAdmin;
import com.xian.tszs.meal.repository.TsAdminRepoistory;
import com.xian.tszs.meal.service.TsAdminManageService;
/***
 * 系统设置控制器
* @Title: TsAdminManageController.java 
* @author MRC
* @date 2019年5月22日 上午8:58:11 
* @version V1.0
 */
@Controller
@RequestMapping("business/adminManage")
public class TsAdminManageController {
	
	
	@Autowired
	private TsAdminRepoistory tsAdminRep;
	
	@Autowired
	private TsAdminManageService tsAdminManageService;
	
	/***
	 * 商家信息修改
	* @author: MRC  
	* @date 2019年5月21日 下午5:10:59 
	* @return String 返回类型
	 */
	@GetMapping("adminInfo")
	public String toAdminInfo(Model model,@AuthenticationPrincipal TsAdmin loginedUser) {
		
		model.addAttribute("obj", tsAdminRep.findById(loginedUser.getId()).get());
		
		return "adminInfo";
	}
	
	/**
	 * 修改店家登录后台密码
	* @author: MRC  
	* @date 2019年5月21日 下午5:49:03 
	* @return String 返回类型
	 */
	@GetMapping("adminUpdatePass")
	public String toAdminUpdatePass(Model model,@AuthenticationPrincipal TsAdmin loginedUser) {
		
		model.addAttribute("obj", tsAdminRep.findById(loginedUser.getId()).get());
		
		return "adminUpdatePass";
	}
	
	/***
	 * 修改商户信息
	* @author: MRC  
	* @date 2019年5月21日 下午5:55:38 
	* @return Map<String,Object> 返回类型
	 */
	@PostMapping("adminUpdatePass")
	@ResponseBody
	public Map<String, Object> updateAdminInfo(TsAdmin tsAdmin) {
		
		Map<String, Object> map = new HashMap<String, Object>();
		
		tsAdminManageService.updateAdminInfo(tsAdmin);
		
		return map;
	}
	
	/**
	 * 
	* @author: MRC  
	* @date 2019年5月22日 上午8:59:26 
	* @return Map<String,Object> 返回类型
	 */
	@PostMapping("updateAdminPass")
	@ResponseBody
	public Map<String, Object> updateAdminPass(@AuthenticationPrincipal TsAdmin logined,TsAdmin tsAdmin,String newpass1) {
		
		Map<String, Object> map = new HashMap<String, Object>();
		BCryptPasswordEncoder bs = new BCryptPasswordEncoder();
		
		map.put("success", false);
		if (StringUtils.isEmpty(newpass1)) {
			map.put("msg", "参数缺失");
		} else if (!logined.getAccount().equals(tsAdmin.getAccount())) {
			map.put("msg", "账号信息不符合");
		} else if(!bs.matches(tsAdmin.getPassword(), logined.getPassword())){
			map.put("msg", "账号原密码错误！");
		} else {
			tsAdminManageService.updateAdminPass(bs.encode(newpass1), logined.getId());
			map.put("msg", "密码修改成功！请重新登录");
		}
		return map;
	}
	
	
}
